package cn.lumora.pojo;

import cn.lumora.core.model.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.*;

import java.math.BigDecimal;

/**
 * <p>
 * 境界阶位表：用于定义修真境界中的各个小阶段（如炼气一阶、二阶等）
 * 每个阶位包含经验需求、属性加成、解锁技能等信息
 * </p>
 *
 * @author 刘智超
 * @since 2025-04-05
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("cultivation_stage_rank")
public class CultivationStageRank extends BaseEntity {


    /**
     * 关联的大境界ID（如炼气境、筑基境等）
     */
    @TableField("stage_id")
    private String stageId;

    /**
     * 阶位等级（如1表示一阶）
     */
    @TableField("rank")
    private Integer rank;

    /**
     * 全称（如“炼气一阶”、“凡人境·圆满”）
     */
    @TableField("name")
    private String name;

    /**
     * 晋升所需经验（相对于本境界的累计经验）
     */
    @TableField("required_exp")
    private Long requiredExp;

    /**
     * 描述信息（用于介绍该阶位的特点）
     */
    @TableField("description")
    private String description;

    /**
     * 解锁条件（如“完成某项任务”或“击败某个敌人”）
     */
    @TableField("unlock_condition")
    private String unlockCondition;

    /**
     * 攻击力加成（角色升级到该阶位后获得的额外攻击力）
     */
    @TableField("bonus_attack")
    private Integer bonusAttack;

    /**
     * 生命值加成（角色升级到该阶位后获得的额外生命值）
     */
    @TableField("bonus_health")
    private Integer bonusHealth;

    /**
     * 解锁的技能ID（突破至该阶位后可解锁的技能）
     */
    @TableField("unlocked_skill_id")
    private String unlockedSkillId;

    /**
     * 每日经验获取上限（防止挂机刷经验）
     */
    @TableField("daily_exp_limit")
    private Long dailyExpLimit;

    /**
     * 修炼效率倍率（影响每秒经验获取速度）
     */
    @TableField("efficiency_rate")
    private BigDecimal efficiencyRate;

    /**
     * 突破所需物品ID（如丹药、材料等）
     */
    @TableField("required_item_id")
    private String requiredItemId;

    /**
     * 突破所需物品数量
     */
    @TableField("required_item_count")
    private Integer requiredItemCount;
}
